package com.karaoke.oksrv.mapper.master;

import com.karaoke.oksrv.domain.Song;
import org.apache.ibatis.annotations.Param;
import org.jetbrains.annotations.Nullable;

import java.util.List;

public interface SongMapper {
    int deleteByPrimaryKey(String id);

    int insert(Song record);

    int insertSelective(Song record);

    Song selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(Song record);

    int updateByPrimaryKey(Song record);

    @Nullable
    List<Song> selectPublicSongs();

    List<Song> selectBySinger(@Param("srId") Integer srId);

    List<Song> selectByLanguage(@Param("langId") Integer langId, @Param("keyword") String keyword);

    List<Song> selectNew();

    List<Song> selectWordCount(@Param("count") Integer count);

    List<Song> selectSearch(@Param("keyword") String keyword);

    List<Song> selectTypeId(@Param("typeId") Integer typeId, @Param("langId") Integer langId);

    List<Song> selectRecommends();

    List<Song> selectHots();
}